package com.jia.leetCode;

import java.util.Arrays;

/**
 * 最后一块石头的重量
 * 
 * 有一堆石头，每块石头的重量都是正整数。

每一回合，从中选出两块最重的石头，然后将它们一起粉碎。假设石头的重量分别为 x 和 y，且 x <= y。那么粉碎的可能结果如下：

如果 x == y，那么两块石头都会被完全粉碎；
如果 x != y，那么重量为 x 的石头将会完全粉碎，而重量为 y 的石头新重量为 y-x。
最后，最多只会剩下一块石头。返回此石头的重量。如果没有石头剩下，就返回 0。

 

提示：

1 <= stones.length <= 30
1 <= stones[i] <= 1000

来源：力扣（LeetCode）
链接：https://leetcode-cn.com/problems/last-stone-weight
著作权归领扣网络所有。商业转载请联系官方授权，非商业转载请注明出处。
 * 
 * @author Administrator
 *
 */
public class Pro1046 {
	/**
	 * 1 <= stones.length <= 30
		1 <= stones[i] <= 1000
	 * @param stones
	 * @return
	 */
    public int lastStoneWeight(int[] stones) {
    	int len = stones.length;
    	if(stones.length == 1) return stones[0];
    	while(true) {
    		Arrays.sort(stones);
    		if(stones[len - 2] == 0) return stones[len - 1];
    		stones[len - 1] = stones[len - 1]- stones[len - 2];
    		stones[len - 2] = 0;
    	}
    }
}
